﻿using System;
namespace 记得吃早餐
{

    //编写一个程序，用以接收用户输入的两个浮点型的数值，
    //一个值表示用户想要存放在银行账户中的余额，另一个值表示用户想要从银行账户中提取的金额。
    //实现存取款功能，
    //用户功能选择：1、存款，2、取款
    //取款时：
    //当用户想要提取的金额大于余额时，请手动抛出一个ArgumentOutOfRangeException 参数超出范围的异常，
    //异常信息可以写“取款金额大于余额，请重新输入”
    //，如此以确保取款金额始终不大于当前余额。
    //操作结束，打印输出余额是多少。
    //最后再添加catch一般异常 Exception，使得数据类型转换的异常也能被捕获到。

    class Work2
    {
        int x = 0;//存款
        int y = 0;//取款
        int Money = 1000;//余额
        public void Bank()
        {
            while (true)
            {
                Console.WriteLine("请输入：1、存款，2、取款");
                int z = int.Parse(Console.ReadLine());
                if (z == 1) { Deposit(); }
                else if (z == 2) { Withdrawal(); }
                else { Console.WriteLine("请输入正确的数字！"); }
            }
        }
        public void Deposit()  //存款
        {
            bool TF = true;
            Console.WriteLine("请输入要存的钱：");
            try
            {
                x = int.Parse(Console.ReadLine());
                Money += x;
            }
            catch (FormatException e)
            {
                Console.WriteLine("格式转换异常，异常信息：" + e.Message);
                TF = false;
            }
            finally
            {
                if (TF) { Console.WriteLine("存款成功，您的余额为：" + Money); }
                else { Console.WriteLine("存款失败，请重试！"); }
            }
        }
        public void Withdrawal()//存钱
        {
            bool TF = true;

            try
            {
                Console.WriteLine("请输入要取的钱：");
                y = int.Parse(Console.ReadLine());
                if (y > Money) { throw new ArgumentOutOfRangeException(); }
                Money -= y;
            }
            catch (FormatException e)
            {
                Console.WriteLine("格式转换异常，异常信息：" + e.Message);
                TF = false;
            }
            catch (ArgumentOutOfRangeException f)
            {
                Console.WriteLine("取款数额异常，异常信息：" + f.Message);
                TF = false;
            }
            finally
            {
                if (TF) { Console.WriteLine("取款成功，您的余额为：" + Money); }
                else { Console.WriteLine("取款失败，请重试！"); }
            }
        }
    }
}
